#ifndef __Y64_MOUSE_H__
#define __Y64_MOUSE_H__

/*
    鼠标设备依赖键盘控制器，通过键盘控制器发送控制命令和接收鼠标设备的数据
*/

#include "keyboard.h"

#define KBCMD_SENDTO_MOUSE  0xd4            // 向鼠标发送数据，发送给键盘控制器
#define MOUSE_ENABLE        0xf4            // 允许鼠标设备发送数据，发送给鼠标设备
#define KBCMD_EN_MOUSE_INTFACE  0xa8        // 开启鼠标端口，发送给键盘控制器

// 这里使用3字节的数据包格式，参考keyboard.h中说明
typedef struct __st_mouse_packet {
    unsigned char byte0;
    char byte1;
    char byte2;
} st_mouse_packet;

extern st_mouse_packet g_mouse;
extern st_keyboard_in_buf *g_p_mouse;

void analysis_mousecode();

void mouse_exit();

#endif